package com.buaa.aiguangxi.pojo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

import java.sql.Timestamp;

public class VideoFrame {
    //输入

    private int videoFrameId;//唯一标识
    private int cameraId;//摄像头ID
    private double FPS;//默认为5
    private double DPI;//分辨率
    private Timestamp timestamp;//时间戳，同时也为输出的帧ID


    //算法输出

    //目标检测
    private JSON targetDetectionBB;//bb
    private int targetDetectionType;//类别
    private double targetDetectionConfidence;//置信度

    //跟踪
    private JSON trackBB;//bb
    private int trackType;//类别
    private double trackConfidence;//置信度
    private int trackId;
    private int isConsider;//是否考虑该目标
    private double visibilityRatio;//可见比例


    //最终业务输出

    private JSONArray realTimeSpeed;//每辆车的实时速度
    private JSONArray aveLaneSpeed;//每个车道的平均速度
    private JSONArray aveDirectionSpeed;//每个方向的平均速度
    private double aveSpeed;//整体平均速度
    private double inFlow;//入流量
    private double outFlow;//出流量
    private int carNum;//某个区域有多少辆车
    private int jamRank;//拥堵等级1-5

    public int getVideoFrameId() {
        return videoFrameId;
    }

    public void setVideoFrameId(int videoFrameId) {
        this.videoFrameId = videoFrameId;
    }

    public int getCameraId() {
        return cameraId;
    }

    public void setCameraId(int cameraId) {
        this.cameraId = cameraId;
    }

    public double getFPS() {
        return FPS;
    }

    public void setFPS(double FPS) {
        this.FPS = FPS;
    }

    public double getDPI() {
        return DPI;
    }

    public void setDPI(double DPI) {
        this.DPI = DPI;
    }

    public Timestamp getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Timestamp timestamp) {
        this.timestamp = timestamp;
    }

    public JSON getTargetDetectionBB() {
        return targetDetectionBB;
    }

    public void setTargetDetectionBB(JSON targetDetectionBB) {
        this.targetDetectionBB = targetDetectionBB;
    }

    public int getTargetDetectionType() {
        return targetDetectionType;
    }

    public void setTargetDetectionType(int targetDetectionType) {
        this.targetDetectionType = targetDetectionType;
    }

    public double getTargetDetectionConfidence() {
        return targetDetectionConfidence;
    }

    public void setTargetDetectionConfidence(double targetDetectionConfidence) {
        this.targetDetectionConfidence = targetDetectionConfidence;
    }

    public JSON getTrackBB() {
        return trackBB;
    }

    public void setTrackBB(JSON trackBB) {
        this.trackBB = trackBB;
    }

    public int getTrackType() {
        return trackType;
    }

    public void setTrackType(int trackType) {
        this.trackType = trackType;
    }

    public double getTrackConfidence() {
        return trackConfidence;
    }

    public void setTrackConfidence(double trackConfidence) {
        this.trackConfidence = trackConfidence;
    }

    public int getTrackId() {
        return trackId;
    }

    public void setTrackId(int trackId) {
        this.trackId = trackId;
    }

    public int getIsConsider() {
        return isConsider;
    }

    public void setIsConsider(int isConsider) {
        this.isConsider = isConsider;
    }

    public double getVisibilityRatio() {
        return visibilityRatio;
    }

    public void setVisibilityRatio(double visibilityRatio) {
        this.visibilityRatio = visibilityRatio;
    }

    public JSONArray getRealTimeSpeed() {
        return realTimeSpeed;
    }

    public void setRealTimeSpeed(JSONArray realTimeSpeed) {
        this.realTimeSpeed = realTimeSpeed;
    }

    public JSONArray getAveLaneSpeed() {
        return aveLaneSpeed;
    }

    public void setAveLaneSpeed(JSONArray aveLaneSpeed) {
        this.aveLaneSpeed = aveLaneSpeed;
    }

    public JSONArray getAveDirectionSpeed() {
        return aveDirectionSpeed;
    }

    public void setAveDirectionSpeed(JSONArray aveDirectionSpeed) {
        this.aveDirectionSpeed = aveDirectionSpeed;
    }

    public double getAveSpeed() {
        return aveSpeed;
    }

    public void setAveSpeed(double aveSpeed) {
        this.aveSpeed = aveSpeed;
    }

    public double getInFlow() {
        return inFlow;
    }

    public void setInFlow(double inFlow) {
        this.inFlow = inFlow;
    }

    public double getOutFlow() {
        return outFlow;
    }

    public void setOutFlow(double outFlow) {
        this.outFlow = outFlow;
    }

    public int getCarNum() {
        return carNum;
    }

    public void setCarNum(int carNum) {
        this.carNum = carNum;
    }

    public int getJamRank() {
        return jamRank;
    }

    public void setJamRank(int jamRank) {
        this.jamRank = jamRank;
    }
}
